package com.cn.jinl.dao;

import com.cn.jinl.domain.Order;
import com.cn.jinl.domain.OrderExample;

import java.math.BigDecimal;
import java.util.List;

import com.cn.jinl.domain.OrderRankingVo;
import com.cn.jinl.utils.QueryForm;
import org.apache.ibatis.annotations.Param;

public interface OrderMapper {
    int countByExample(OrderExample example);

    int deleteByExample(OrderExample example);

    int insert(Order record);

    int insertSelective(Order record);

    int batchInsertOrders(@Param("itemList") List<Order> records);

    List<Order> selectByExample(OrderExample example);

    List<String> selectOrderGrades();

    List<String> selectOrderIdsByPlanId(String planId);

    List<String> selectOrderIdsAndProductByPlanId(String planId);

    List<Order> selectOrderList(QueryForm queryForm);
    int selectOrderListCount(QueryForm queryForm);

    List<Order> selectOrderOutRelates(String id);
    List<Order> selectOrderOutRelatesByParam(QueryForm queryForm);

    Order selectOrderById(String id);

    int updateByExampleSelective(@Param("record") Order record, @Param("example") OrderExample example);

    int updateByExample(@Param("record") Order record, @Param("example") OrderExample example);

    int batchUpdateOrderNeeds(List<Order> orders);

    int batchUpdateOrderGoodsStatus(List<Order> orders);

    List<Order> getNameByQuery(String queryString);

    List<Order> selectOrderListByisHaving(QueryForm queryForm);

    int selectOrderListIsHavingCount(QueryForm queryForm);

    BigDecimal getAllTypesCount(QueryForm queryForm);

    int getDataAnalysisCount(QueryForm queryForm);

    List<OrderRankingVo> OrderAndSalesRanking(QueryForm queryForm);

    List<OrderRankingVo> OrderRanking3(QueryForm queryForm);

    List<OrderRankingVo> OrderRankingLast1(QueryForm queryForm);

    List<OrderRankingVo> priceRanking3(QueryForm queryForm);

    List<OrderRankingVo> priceRankingLast1(QueryForm queryForm);

    BigDecimal getAllTypesNumList(QueryForm queryForm);

    BigDecimal customerDelivery(QueryForm queryForm);

    BigDecimal customerOrder(QueryForm queryForm);

    int getShippingDetailsCount(QueryForm queryForm);

    List<OrderRankingVo> getShippingDetailsList(QueryForm queryForm);

    List<OrderRankingVo> exportShippingDetail(QueryForm queryForm);

    int getOrderCount(QueryForm queryForm);
}